#ifndef CLauncher_h
#define CLauncher_h

#include "TAlgorithm.h"
#include "TLauncher.h"

#include <iostream>

class ICommand
{
public:
    ICommand(){}
    virtual ~ICommand(){}
public:
    virtual float Execute()=0;
};

class CLaunchers
{
public:
    static const size_t sDEBUG_MODE = 1;
public:
    ~CLaunchers(){ delete mCommand; }
public:
    template<class tFunc> CLaunchers(tFunc func):mCommand (CreateFunctor(func)){}
public:
    float Execute() { return mCommand->Execute(); }
private:
    ICommand* mCommand;
    
};








#endif